module.exports = app => {
    const mongoose = app.mongoose;
    const Schema = mongoose.Schema;
    const CdnSchema = new Schema({
        name: {
            type: String,
            required: true
        }, // CDN项目地址名称
        tenantId: {
            type: String,
            required: true
        }, // 租户目录ID
        version: { // 版本
            type: String,
        },
        newVersion: { type: Schema.Types.ObjectId, ref: 'Version' }, // 最新版本
        homePage: {
            type: String,
            required: true
        }, // 首页入口
        authPage: { // 存放版本页面的地址，授权页
            type: String,
        },
        resource: {
            type: String,
            required: true
        }, // 资源存放地址
        rule: { // 正则替换规则
            type: String
        },
        env: {
            type: Number,
            default: 3,
            enum: [1, 2, 3] // 1 prod 2 pre 3 dev
        },
        type: {
            type: Number,
            default: 5,
            enum: [1, 2, 3, 4, 5, 6]
        }, // 1 APP 2:微信 3:企业微信 4: 钉钉 5:内嵌 6: PC
        uploadType: { // 上传模式 1 通过版本替换 2 直接上传
            type: Number,
            default: 1,
            enum: [1, 2],
            required: true
        },
        status:  { // 1 生效 2 失效
            type: Number,
            default: 1,
            enum: [0, 1, 2]
        },
    }, { timestamps: { createdAt: 'createDate', updatedAt: 'updateDate' } });
    CdnSchema.pre('find', function () {
        this.populate('newVersion', 'version status');
    });
    CdnSchema.pre('findOne', function () {
        this.populate('newVersion');
    });
    CdnSchema.pre('findOneAndUpdate', function () {
        this.populate('newVersion');
    });
    return mongoose.model('Cdn', CdnSchema);
}